#ifndef LAUNCHEVENT_H_
#define LAUNCHEVENT_H_

#include "./Command.h"
#include "../GameLogic/Objects/GameObject.h"
#include "../GameLogic/Simulation.h"

#include "../Core/PvN.h"

namespace Commands {

/*
 * Uruchamie wybrane zdarzenie dla zadanych obiektow.
 */
class LaunchEvent : public Command {
public:
	enum EventType { onHitImpassableTile, onHit };
private:
	EventType type_;
	GameLogic::Objects::GameObject* arg1_;
	GameLogic::Objects::GameObject* arg2_;
public:

	LaunchEvent( EventType type, GameLogic::Objects::GameObject* arg1, GameLogic::Objects::GameObject* arg2 = 0 );

	void execute( GameLogic::Simulation* s );

	void serialize( std::ostringstream& );

};

} //namespace Commands

#endif /* LAUNCHEVENT_H_ */
